package com.atguigu.yygh.hosp.controller;

import com.atguigu.yygh.cmn.client.DictFeignClient;
import com.atguigu.yygh.common.result.R;
import com.atguigu.yygh.hosp.service.HospitalService;
import com.atguigu.yygh.model.hosp.Hospital;
import com.atguigu.yygh.vo.hosp.HospitalQueryVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * @program: yygh_parent
 * @author: Mr.Zhuo
 * @create: 2022-03-12 21:36
 **/
@Api(tags = "医院接口")
@RestController
@RequestMapping("/admin/hosp/hospital")
//@CrossOrigin
public class HospitalController {


    @Autowired
    private HospitalService hospitalService;

    @ApiOperation(value = "获取医院详情")
    @GetMapping("show/{id}")
    public R show(
            @ApiParam(name = "id", value = "医院id", required = true)
            @PathVariable String id) {
        Map map = hospitalService.show(id);
        return R.ok().data(map);

    }

    @ApiOperation("医院上线下线功能完成")
    @GetMapping("updateStatus/{id}/{status}")
    public R updateStatus(@PathVariable("id") String id,
                          @PathVariable("status") String status) {
        hospitalService.updateStatus(id, status);

        return R.ok();

    }
    // 首先查询所有的数据index

    /**
     * 首先思路：
     * 1. 分页查询所有的数据
     * // 返回的数据中包含编号（我们需要根据编号查询具体内容）
     * //   和 openfeign 进行微服务之间的远程调用
     * // hosp服务调用 cmn服务
     * // 两个服务都需要进行nacos 服务注册
     * // 进行导入包
     * // 主启动类@EnableDiscoveryClient（服务发现）
     * // hosp进行调用
     * // 创建一个远程调用模块
     * // 导入包 openFeign
     * // @FeignClient("service-cmn") 发现服务
     * // 然后定义接口  把方法进行复制粘贴
     *
     * @param page
     * @param limit
     * @param hospitalQueryVo
     * @return
     */
    @ApiOperation(value = "获取分页列表")
    @GetMapping("{page}/{limit}")
    public R index(
            @PathVariable("page") Integer page,
            @PathVariable("limit") Integer limit,
            HospitalQueryVo hospitalQueryVo
    ) {
        Page<Hospital> pages = hospitalService.selectPage(page, limit, hospitalQueryVo);

        return R.ok().data("pages", pages);
    }
}
